package vistas;

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

import Iview.IFormLogin;

import java.awt.Color;

import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JPasswordField;
import javax.swing.JButton;

import configuraciones.EnumLogin;
import contenedorSpring.Contenedor;
import controlesInterfaz.panelFondoLogin;

import java.awt.SystemColor;
import java.awt.event.ActionListener;

import javax.swing.SwingConstants;

public class FormLogin extends JFrame implements IFormLogin {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JPanel contentPane;
	private JTextField FieldUsuario;
	private JPasswordField FieldPassword;
	private JButton btnRegistrar;
	private JButton btnLogin;

	/**
	 * Create the frame.
	 */
	public FormLogin() {
		setType(Type.POPUP);
		setBackground(SystemColor.activeCaption);
		setResizable(false);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 295, 391);
		contentPane = new JPanel();
		contentPane.setBackground(Color.WHITE);
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(new BorderLayout(0, 0));

		JPanel panel = new panelFondoLogin();
		panel.setBackground(Color.WHITE);
		contentPane.add(panel);
		panel.setLayout(null);

		JLabel lbusuario = new JLabel("Usuario");
		lbusuario.setBounds(95, 161, 46, 14);
		panel.add(lbusuario);

		FieldUsuario = new JTextField();
		FieldUsuario.setHorizontalAlignment(SwingConstants.CENTER);
		FieldUsuario.setBounds(171, 158, 86, 20);
		panel.add(FieldUsuario);
		FieldUsuario.setColumns(10);

		btnLogin = new JButton(EnumLogin.BOTON_INGRESO.getDescripcion());
		btnLogin.setBounds(144, 268, 89, 32);
		panel.add(btnLogin);

		JLabel lbpassword = new JLabel("Contrase\u00F1a");
		lbpassword.setBounds(95, 192, 71, 14);
		panel.add(lbpassword);

		FieldPassword = new JPasswordField();
		FieldPassword.setHorizontalAlignment(SwingConstants.CENTER);
		FieldPassword.setBounds(171, 189, 86, 20);
		panel.add(FieldPassword);

		btnRegistrar = new JButton(EnumLogin.BOTON_REGISTRAR.getDescripcion());
		btnRegistrar.setEnabled(false);
		btnRegistrar.setBackground(Color.WHITE);
		btnRegistrar.setBounds(171, 217, 89, 23);
		panel.add(btnRegistrar);
	}

	@Override
	public String getUsuario() {
		return FieldUsuario.getText();
	}

	@Override
	public String getPassword() {
		return new String(FieldPassword.getPassword());
	}

	@Override
	public void accionIngresar(ActionListener accion) {
		btnLogin.addActionListener(accion);

	}

	@Override
	public void accionRegistrar(ActionListener accion) {
		btnRegistrar.addActionListener(accion);

	}

	@Override
	public void mostrarMensaje(int tipo, String mensaje) {
		switch (tipo) {
		case 1:// mensaje de error
			JOptionPane.showMessageDialog(null, mensaje, "Error",
					JOptionPane.ERROR_MESSAGE);
			break;
		case 2:// mensaje de informacion
			JOptionPane.showMessageDialog(null, mensaje, "Informacion",
					JOptionPane.INFORMATION_MESSAGE);
			break;
		}
	}
	
	@Override
	public void navegarGestionRemota() {
		JFrame frame = (JFrame) Contenedor.getSingleton().getApplicationContext().getBean("formEscritorioEstudiante");
		frame.setVisible(true);
		this.setVisible(false);
	}

}
